#!/usr/bin/python
# -*-coding:utf-8-*-
# python 2.7 
import urllib
import os 


#方法一：

# 使用 urllib 模块提供的 urlretrieve() 函数。
# urlretrieve() 方法直接将远程数据下载到本地。
#
#    
# urlretrieve(url, [filename=None, [reporthook=None, [data=None]]])
#
#    说明：
#
#    参数 finename 指定了保存本地路径（如果参数未指定，urllib会生成一个临时文件保存数据。）
#
#    参数 reporthook 是一个回调函数，当连接上服务器、以及相应的数据块传输完毕时会触发该回调，
#    我们可以利用这个回调函数来显示当前的下载进度。
#
#    参数 data 指 post 到服务器的数据，该方法返回一个包含两个元素的(filename, headers)元组，
#    filename 表示保存到本地的路径，header 表示服务器的响应头。 
#

def  getfileuse(downdsize,blocksize,remotesize):
    '''
    已经下载大小
    数据块大小
    远程文件大小
    '''

    per = 100.0*downdsize*blocksize/remotesize
    
    print per

    print "--------------------------" 

    if per >100 :
        per = 100

    print '%.2f%%' % per


downurl = 'http://xxxxxCentOS-6.10-x86_64-minimal.iso'

localpath = os.path.join("CentOS-6.10-x86_64-minimal.iso")    

#urllib.urlretrieve(downurl,localpath,getfileuse)



import urllib2


urllib2downfile = urllib2.urlopen(downurl)

readdata = urllib2downfile.read()

with open("CentOS6",'wb') as code:
    code.write(readdata)

print("data is down over")


import requests

requestsread = requests.get(downurl)

with open("CetOS6","wb") as readcode:
    readcode.write(requestsread.content)


print("requests down is ok ")


# 分部分下载
import requests

requestsread = requests.get(bigdownurl)

with open("CetOS6","wb") as readcode:
    
    for smallsize in requestsread.iter_content(size=1024):
        
        if smallsize:
            readcode.write(requestsread.content)


print("requests down is ok ")




# https://www.cnblogs.com/jiu0821/p/6275685.html
# https://www.jb51.net/article/82750.htm

# https://github.com/freelamb/simple_http_server




